﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using QuanLyDoanVien.Controller;
using QuanLyDoanVien.Bussiness;

namespace QuanLyDoanVien
{
    public partial class frmQLHD : DevComponents.DotNetBar.Office2007Form
    {
        public frmQLHD()
        {
            InitializeComponent();
        }

        #region Bien
        HoatDongCtrl m_HoatDongCtrl = new HoatDongCtrl();
        List<HoatDongInfo> dsHoatDong = new List<HoatDongInfo>();
        #endregion

        #region Ham
        private void loadDSHoatDong(){
            dsHoatDong = m_HoatDongCtrl.layDSHoatDong();
            dataGridView_HD.Rows.Clear();
            foreach (HoatDongInfo hd in dsHoatDong)
            {
                dataGridView_HD.Rows.Add(hd.MaHoatDong,hd.TenHoatDong,hd.NgayToChuc.ToString("dd/MM/yyyy"),hd.NgayKetThuc.ToString("dd/MM/yyyy"),hd.Diem,hd.GhiChu);
            }
        }

        private void setDateFormat()
        {
            date_HD_KetThuc.CustomFormat = "dd/MM/yyyy";
            date_HD_ToChuc.CustomFormat = "dd/MM/yyyy";
        }

        private void resetForm()
        {
            txt_HD_Ma.Text = "";
            txt_HD_Ten.Text = "";
            txt_HD_Diem.Text = "";
            txt_HD_GhiChu.Text = "";
            date_HD_ToChuc.Value = DateTime.Now;
            date_HD_KetThuc.Value = DateTime.Now;
        }

        private bool checkValueValid()
        {
            if (txt_HD_Ma.Text.Trim() == "")
            {
                MessageBox.Show("Vui lòng nhập mã hoạt động", "Thông báo");
                txt_HD_Ma.Focus();
                return false;
            }
            if (txt_HD_Ten.Text.Trim() == "")
            {
                MessageBox.Show("Vui lòng nhập tên hoạt động", "Thông báo");
                txt_HD_Ten.Focus();
                return false;
            }
            if (txt_HD_Diem.Text.Trim() == "")
            {
                MessageBox.Show("Vui lòng nhập điểm", "Thông báo");
                txt_HD_Diem.Focus();
                return false;
            }
            if (date_HD_KetThuc.Value.CompareTo(date_HD_ToChuc.Value) == -1)
            {
                MessageBox.Show("Ngày kết thúc phải lớn hơn hoặc bằng ngày tổ chức", "Thông báo");
                return false;
            }
            return true;
        }
        #endregion

        private void frmQLHD_Load(object sender, EventArgs e)
        {
            setDateFormat();
            resetForm();
            loadDSHoatDong();
        }

        private void btn_HD_Them_Click(object sender, EventArgs e)
        {
            resetForm();
            txt_HD_Ma.Text = m_HoatDongCtrl.getAutoID();
        }

        private void txt_HD_Diem_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar)&&!char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void btn_HD_Luu_Click(object sender, EventArgs e)
        {
            if (!checkValueValid())
                return ;
            HoatDongInfo hd = new HoatDongInfo();
            hd.MaHoatDong = m_HoatDongCtrl.getAutoID();
            hd.TenHoatDong = txt_HD_Ten.Text;
            hd.Diem = float.Parse(txt_HD_Diem.Text);
            hd.GhiChu = txt_HD_GhiChu.Text;
            hd.NgayToChuc = date_HD_ToChuc.Value;
            hd.NgayKetThuc = date_HD_KetThuc.Value;

            if (m_HoatDongCtrl.themHoatDong(hd))
            {
                MessageBox.Show("Thêm hoạt động thành công", "Thông báo");
                loadDSHoatDong();
                resetForm();
            }
            else
                MessageBox.Show("Thêm hoạt động thất bại", "Thông báo");
        }

        private void dataGridView_HD_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridView_HD.SelectedRows.Count > 0)
            {
                DataGridViewRow dr = dataGridView_HD.SelectedRows[0];
                if (dr.IsNewRow)
                    return;
                txt_HD_Diem.Text = dr.Cells["Diem"].Value.ToString();
                txt_HD_GhiChu.Text = dr.Cells["GhiChu"].Value.ToString();
                txt_HD_Ma.Text = dr.Cells["MaHoatDong"].Value.ToString();
                txt_HD_Ten.Text = dr.Cells["TenHoatDong"].Value.ToString();
                string []strToChuc = dr.Cells["NgayToChuc"].Value.ToString().Split('/');
                string[] strKetThuc = dr.Cells["NgayKetThuc"].Value.ToString().Split('/');
                date_HD_ToChuc.Value = new DateTime(int.Parse(strToChuc[2]), int.Parse(strToChuc[1]), int.Parse(strToChuc[0]));
                date_HD_KetThuc.Value = new DateTime(int.Parse(strKetThuc[2]), int.Parse(strKetThuc[1]), int.Parse(strKetThuc[0]));

            }
        }

        private void btn_HD_Sua_Click(object sender, EventArgs e)
        {
            if (!checkValueValid())
                return;
            if (m_HoatDongCtrl.layHoatDong(txt_HD_Ma.Text)==null)
            {
                MessageBox.Show("Mã hoạt động không tồn tại", "Thông báo");
                return;
            }
            HoatDongInfo hd = new HoatDongInfo();
            hd.MaHoatDong = txt_HD_Ma.Text;
            hd.TenHoatDong = txt_HD_Ten.Text;
            hd.Diem = float.Parse(txt_HD_Diem.Text);
            hd.GhiChu = txt_HD_GhiChu.Text;
            hd.NgayToChuc = date_HD_ToChuc.Value;
            hd.NgayKetThuc = date_HD_KetThuc.Value;

            if (m_HoatDongCtrl.capNhatHoatDong(hd))
            {
                MessageBox.Show("Cập nhật hoạt động thành công", "Thông báo");
                loadDSHoatDong();
                resetForm();
            }
            else
                MessageBox.Show("Cập nhật hoạt động thất bại", "Thông báo");
        }

        private void btn_HD_Xoa_Click(object sender, EventArgs e)
        {
            if (m_HoatDongCtrl.layHoatDong(txt_HD_Ma.Text) == null)
            {
                MessageBox.Show("Mã hoạt động không tồn tại", "Thông báo");
                return;
            }

            if (m_HoatDongCtrl.xoaHoatDong(txt_HD_Ma.Text))
            {
                MessageBox.Show("Xoá hoạt động thành công", "Thông báo");
                loadDSHoatDong();
                resetForm();
            }
            else
                MessageBox.Show("Xoá hoạt động thất bại", "Thông báo");
        }
    }
}